我有一个使用BTLE连接到设备(arduino)的iOS应用程序.我的iPad iOS 7上的一切正常.升级到iOS 8后,CBCentralManager找不到任何外围设备.
- (void)startScanningForSupportedUUIDs { [self.centralManager scanForPeripheralsWithServices:nil options:nil]; }
我不知道会出现什么问题.
我有解决方案,出于某种原因,在iOS 8中实例化你的CBManager后有一些延迟.您需要在CBCentralManager启用时开始扫描,在此方法中:
-(void)centralManagerDidUpdateState:(CBCentralManager *)central{ switch (central.state) { case CBCentralManagerStatePoweredOff: NSLog(@"CoreBluetooth BLE hardware is powered off"); break; case CBCentralManagerStatePoweredOn: { NSLog(@"CoreBluetooth BLE hardware is powered on and ready"); NSArray *uuidArray = [NSArray arrayWithObjects:[CBUUID UUIDWithString:TRANSFER_SERVICE_UUID], nil]; NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:CBCentralManagerScanOptionAllowDuplicatesKey]; [centralManager scanForPeripheralsWithServices:uuidArray options:options]; } break; case CBCentralManagerStateResetting: NSLog(@"CoreBluetooth BLE hardware is resetting"); break; case CBCentralManagerStateUnauthorized: NSLog(@"CoreBluetooth BLE state is unauthorized"); break; case CBCentralManagerStateUnknown: NSLog(@"CoreBluetooth BLE state is unknown"); break; case CBCentralManagerStateUnsupported: NSLog(@"CoreBluetooth BLE hardware is unsupported on this platform"); break; default: break; }